<template>
  <div class="app">
    <div v-if="isShowEdit">
      <input type="text" v-model="editValue" ref="inpRef" />
      <button>确认</button>
    </div>
    <div v-else>
      <span>{{ title }}</span>
      <button @click="edit">编辑</button>
    </div>
  </div>
</template>

<script>
export default {
  data() {
    return {
      title: '大标题',
      isShowEdit: false,
      editValue: '',
    }
  },
  methods: {
    edit(){
      // 数据更新是同步的, DOM的更新是异步的
      // 更通俗理解?
      this.isShowEdit = true
      // DOM更新完成后, 会自动去执行$nextTick中的回调函数
      this.$nextTick(()=>{
        console.log(this.$refs.inpRef)
        this.$refs.inpRef.focus()
      })

      // setTimeout(()=>{
      //   console.log(this.$refs.inpRef)
      // })
    }
  },
}
</script>

<style>
</style>